Java短网址生成工具类(Murmurhash算法实现) 您所在的位置:网站首页 java hash算法工具类 Java短网址生成工具类(Murmurhash算法实现)

Java短网址生成工具类(Murmurhash算法实现)

2024-07-15 14:29| 来源: 网络整理| 查看: 265

Java短网址生成工具类(Murmurhash算法实现)_哈希算法

 

目录

一、 短网址的优点

二、程序代码 

三、运行结果

一、 短网址的优点

1、节省空间: 短网址相比原始网址长度更短,可以节省字符空间,特别是在限制字符数的场景下,比如发送短信。

2、美观简洁: 短网址通常由随机字符或者简短的关键词组成,看起来更美观、简洁,易于记忆和分享。

3、提升用户体验: 用户可以更方便地复制、粘贴或输入短网址,减少了输入错误的可能性。

4、防止链接截断: 一些应用或平台可能会在显示较长的链接时进行截断,使用短网址可以避免这种情况。

5、追踪与统计: 短网址服务通常会提供统计功能,可以追踪链接的点击次数、来源等信息,对于营销活动和数据分析很有帮助。

6、防止链接泄露: 长网址可能包含敏感信息,使用短网址可以在一定程度上保护原始链接的隐私。

7、增加安全性: 有些短网址服务提供安全策略,可以检测和阻止恶意网址,提升用户安全体验。

二、程序代码 package learnProject.csdn; import org.apache.commons.lang.StringUtils; import com.google.common.hash.Hashing; /** * 短网址工具类 * * @author Roc-xb * */ public class DwzUtil { /** * 10个数字+26个小写字母+26个大写字母 */ private static String chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; /** * 62进制 */ private static int scale = 62; /** * 最小长度 */ private static int minLength = 5; /** * 种子 */ private static int seed = 0; /** * 长链接转短链接 * * @param longUrl 长链接 * @return 短链接 */ public static String shortUrl(String longUrl) { // 用MurmurHash算法得出长链接的hash值 int hash = Hashing.murmur3_32(seed).hashBytes(longUrl.getBytes()).asInt(); return hex10To62(hash); } /** * 10进制转62进制 * * @param hash * @return 短链接 */ public static String hex10To62(long hash) { // 解决hash值小于0时,会触发异常。 hash = Math.abs(hash); StringBuilder sb = new StringBuilder(); int remainder; while (hash > scale - 1) { // 对 scale 进行求余,然后将余数追加至 sb 中,由于是从末位开始追加的,因此最后需要反转字符串 remainder = Long.valueOf(hash % scale).intValue(); sb.append(chars.charAt(remainder)); // 除以进制数,获取下一个末尾数 hash /= scale; } sb.append(chars.charAt(Long.valueOf(hash).intValue())); String value = sb.reverse().toString(); // value长度小于minLength时,在左侧填充字符‘0’ return StringUtils.leftPad(value, minLength, '0'); } public static void main(String[] args) { // 长链接 String longUrl = "https://www.ewbang.com/community/service"; // 短链接 String shortUrl = shortUrl(longUrl); System.out.println(String.format("长链接:%s", longUrl)); System.out.println(String.format("短链接:https://www.ewbang.com/%s", shortUrl)); } }三、运行结果

Java短网址生成工具类(Murmurhash算法实现)_长链接_02



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有